Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.09.2013, 13:52
Интересующийся
Отправить личное сообщение для dimi007 Посмотреть профиль Найти все сообщения от dimi007
 
Регистрация: 10.05.2011
Сообщений: 11

Живой поиск JQUERY + AJAX + PHP + MYSQL
Друзья, подскажите пожалуйста, как сделать живой поиск:
технологии - PHP + MYSQL + JQUERY + AJAX

На странице должен быть INPUT
При вбивании в INPUT текста по средствам AJAX обращаемся к обработчику search.php в котором есть запрос к БД и возвращает результат в div

Хочу собрать поиск по играм

Если кто читал какие-нибудь статьи, поделитесь опытом

Сразу скажу...в PHP и MYSQL я начинающий...поэтому вот как то так...

Сразу приведу пример который я попытался интегрировать для решения своей задачи но в нем есть минусы которые я не смог решить, может потому что где-то что-то не указал...

Итак погнали

Для начала напишу html код моей поисковой формы:

<div style="background:#ccc; padding:15px;">
<form action="search.php" method="post" name="form" onsubmit="return false;">
<input type='text' name='search' value='' id="search"><br />
<input type='submit' value='Найти' />
</form>
</div>


Далее я вставляю под формой DIV с id="resSearch" в который должны выводиться результаты поиска:

<div id="resSearch">Начните вводить запрос</div>

на этом с HTML работа закончена.

Идем дальше JAVASCRIPT

подключаю Jquery:

<script src="http://ajaxs.ru/demo/ajax/liveSearch/js/jquery-1.5.1.min.js" type="text/javascript"></script>


Делаю посредством Jquery AJAX запрос:

<script type="text/javascript">
$(function(){
  $("#search").keyup(function(){
     var search = $("#search").val();
     $.ajax({
       type: "POST",
       url: "search.php",
       data: {"search": search},
       cache: false,                                 
       success: function(response){
          $("#resSearch").html(response);
       }
     });
     return false;
   });
});
</script>


И остается только создать обработчик search.php к которому мы обращаемся средствами нашего AJAX запроса:

<?php
header("Content-type: text/html; charset=windows-1251");
$search = $_POST['search'];
$search = addslashes($search);
$search = htmlspecialchars($search);
$search = stripslashes($search);
   if($search == ''){
      exit("Начните вводить запрос");
   }
$db = mysql_connect("host","user","password");
mysql_select_db("data_base_name",$db);
mysql_query("SET NAMES UTF-8");
                
$query = mysql_query("SELECT * FROM sb_plugins_1 WHERE MATCH(p_title)  AGAINST('$search')",$db);
if(mysql_num_rows($query) > 0){
   $sql = mysql_fetch_array($query);
   do{
     echo "<div>".$sql['p_title']."</div>";
   }while($sql = mysql_fetch_array($query));
}else{
   echo "Нет результатов";
}
?>


Сначала когда только подкрепил не работало вообще! Потом вычитал что для поле по которому выполняю поиск доkжен быть тип FULLTEXT - установил! И все равно ищет не так как я хочу.

Должен начинать вбивать название и должно выводить возможные варианты. Например есть названия HALF-LIFE, DEADPOOL, DOOM. Должно быть если я вбиваю dead то он должен сразу мне выкинуть только DEADPOOL в див с id="resSearch". Однако у меня работает совсем иначе - пока я полностью не вобью deadpool он будет мне писать что нет результатов....и это отстой! Помогите плиз...может кто знает как сие задачу решить...

Кстати если решение найдем - не плохой пост будет...
Ответить с цитированием
  #2 (permalink)  
Старый 22.07.2014, 12:16
Новичок на форуме
Отправить личное сообщение для dkdenisdk Посмотреть профиль Найти все сообщения от dkdenisdk
 
Регистрация: 22.07.2014
Сообщений: 1

Вариант решения
<?php
header("Content-type: text/html; charset=windows-1251");
$search = $_POST['search'];
$search = addslashes($search);//Убираем эти строки иначе не ищет с
$search = htmlspecialchars($search);//пробелами
$search = stripslashes($search);//
   if($search == ''){
      exit("Начните вводить запрос");
   }
$db = mysql_connect("host","user","password");
mysql_select_db("data_base_name",$db);
mysql_query("SET NAMES UTF-8");
 //Меняем запрос к базе с      ($query = mysql_query("SELECT * FROM //sb_plugins_1 WHERE MATCH(p_title)  AGAINST('$search')",$db);)          
//на
$query = mysql_query("SELECT * FROM sb_plugins_1 WHERE p_title LIKE '%". $search ."%'",$db);
if(mysql_num_rows($query) > 0){
   $sql = mysql_fetch_array($query);
   do{
     echo "<div>".$sql['p_title']."</div>";
   }while($sql = mysql_fetch_array($query));
}else{
   echo "Нет результатов";
}
?>
Ответить с цитированием
  #3 (permalink)  
Старый 22.07.2014, 13:50
Профессор
Отправить личное сообщение для WorM32 Посмотреть профиль Найти все сообщения от WorM32
 
Регистрация: 11.02.2014
Сообщений: 303

http://tutsforweb.blogspot.ru/2012/0...hp-jquery.html
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать переменную с jquery в php Максим2 jQuery 14 28.07.2013 11:38
Решение проблемы кодировок для AJAX и PHP без iconv (cp1251 в AJAX) Serge Ageyev AJAX и COMET 10 24.04.2013 20:48
ajax чат проблема с записью сообщения в базу данных mysql. Niksik AJAX и COMET 4 15.01.2012 14:04
Запуск php скрипта через ajax hagen3 AJAX и COMET 2 09.09.2011 03:51
php session а в ajax Sadist_dead AJAX и COMET 1 19.08.2011 18:35